package com.zcs.app.base.mvvm

import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

open class BaseViewModel : ViewModel() {
    companion object {
        // 隐藏Loading
        const val TAG_HIDE_LOADING = "TAG_HIDE_LOADING"

        const val DFT_LOADING_STR = "数据加载中…"
    }

    val showLoadingObserver = MutableLiveData("")
    val showToastObserver = MutableLiveData("")
    val showMessageObserver = MutableLiveData("")

    fun showToast(msg: String) {
        if (msg.isEmpty()) return
        showToastObserver.postValue(msg)
    }

    fun showLoading(msg: String) {
        if (msg.isEmpty()) return
        showLoadingObserver.postValue(msg)
    }

    fun showLoading() {
        showLoadingObserver.postValue(DFT_LOADING_STR)
    }

    fun hideLoading() {
        showLoadingObserver.postValue(TAG_HIDE_LOADING)
    }

    fun showMessage(msg: String) {
        if (msg.isEmpty()) return
        showMessageObserver.postValue(msg)
        hideLoading()
    }
}